/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package EntidadesController;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
import javax.swing.JOptionPane;

/**
 *
 * @author Tiago
 */
public class Turma {

    /* disciplina_coddisciplina character varying(6) NOT NULL,
  codturma character varying(3) NOT NULL,
  periodo_periodo character varying(6) NOT NULL,
  docente_matriculadoc character varying(9), */

    private String disciplina_coddisciplina = "";
    private String codturma = "";
    private String periodo_periodo = "";
    private String docente_matriculadoc = "";
    private String docenteName = "";
    static Connection conexao = null;
    static Statement estado = null;
    static ResultSet rs;
    private SQLException erro = new SQLException();
    private String msgerro;
    private boolean render=false;

    public boolean isRender() {
        return render;
    }

    public void setRender(boolean render) {
        this.render = render;
    }

    public SQLException getErro() {
        return erro;
    }

    public void setErro(SQLException erro) {
        this.erro = erro;
    }

    public String getMsgerro() {
        return msgerro;
    }

    public void setMsgerro(String msgerro) {
        this.msgerro = msgerro;
    }

    public void setDocenteName(String docenteName)
    {
        this.docenteName = docenteName;
    }

    public String getDocenteName()
    {
        return this.docenteName;
    }

    public Turma() {
        conexao = new Conexao().Acesso();
    }

    public String inserir() throws SQLException {
        String result_inserir = "failure";
        estado = conexao.createStatement();
        try {
            System.out.println("Entrou aqui...");
            estado.execute("INSERT INTO turma(disciplina_coddisciplina, codturma,"
                    +"periodo_periodo, docente_matriculadoc) VALUES('"+this.disciplina_coddisciplina
                    +"','"+this.codturma+"', '"+this.periodo_periodo+"', '"+this.docente_matriculadoc+"');");
            estado.close();
            result_inserir = "success";
            render = false;
        }
        catch (SQLException e)
        {
            this.erro = e;
            msgerro = erro.getLocalizedMessage();

            if (msgerro.contains("pk_codturma")&&msgerro.contains("unicidade"))
            {msgerro = "Essa turma já está cadastrada para essa disciplina!";}
            //estado.execute("ROLLBACK");
            estado.close();
            result_inserir = "failure";
            render = true;
        }
        return result_inserir;
    }

    public List<String> getListaMatriculaDocente() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM docente");
        while (rs.next() == true) {
            docente_matriculadoc = rs.getString(1);
            items.add(docente_matriculadoc);
        }
     return items;
 }

    public List<String> getListaPeriodo() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM periodo");
        while (rs.next() == true) {
            periodo_periodo = rs.getString(1);
            items.add(periodo_periodo);
        }
     return items;
 }

    public List<String> getListaCodDisciplina() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM disciplina");
        while (rs.next() == true) {
            disciplina_coddisciplina = rs.getString(1);
            items.add(disciplina_coddisciplina);
        }
     return items;
 }

    public String getCodturma() {
        return codturma;
    }

    public void setCodturma(String codturma) {
        this.codturma = codturma;
    }

    public String getDisciplina_coddisciplina() {
        return disciplina_coddisciplina;
    }

    public void setDisciplina_coddisciplina(String disciplina_coddisciplina) {
        this.disciplina_coddisciplina = disciplina_coddisciplina;
    }

    public String getDocente_matriculadoc() {
        return docente_matriculadoc;
    }

    public void setDocente_matriculadoc(String docente_matriculadoc) {
        this.docente_matriculadoc = docente_matriculadoc;
    }

    public String getPeriodo_periodo() {
        return periodo_periodo;
    }

    public void setPeriodo_periodo(String periodo_periodo) {
        this.periodo_periodo = periodo_periodo;
    }
    public void buscaNomeDocente() throws SQLException
    {
        estado = conexao.createStatement();
        try
        {
            rs = estado.executeQuery("SELECT nome FROM docente WHERE matriculadoc ='"+this.docente_matriculadoc+"';");
            while (rs.next() == true)
                this.docenteName = rs.getString(1);
            estado.close();
        }
        catch (SQLException e)
        {
            this.erro = e;
            msgerro = erro.getLocalizedMessage();
            estado.close();

        }
    }


   /* public List<String> getListaTurma_disciplina_coddisciplina() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM disciplina");
        while (rs.next() == true) {
            turma_disciplina_coddisciplina = rs.getString(1);
            items.add(turma_disciplina_coddisciplina);
        }
     return items;
 }

    public List<String> getListaTurma_periodo_periodo() throws SQLException {

        List<String> items = new ArrayList<String>();

        estado = conexao.createStatement();
        rs = estado.executeQuery("SELECT * FROM periodo");
        while (rs.next() == true) {
            turma_periodo_periodo = rs.getString(1);
            items.add(turma_periodo_periodo);
        }
     return items;
 }*/

//public static void main(String[] args) throws SQLException {
//
//    Turma d = new Turma();
//    d.setCodturma("T02");
//    d.setDisciplina_coddisciplina("EXA809");
//    d.setDocente_matriculadoc("555555555");
//    d.setPeriodo_periodo("2010.1");
//    d.inserir();
//
//    }

}
